Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

170
Visualizações
reaccionar | Estado compartido de Redux Toolkit Indefinido

Estoy creando una aplicación simple para jugar con Redux ToolKit y reaccionar; sin embargo, puedo ver el objeto en la pestaña cromada redux, pero no puedo acceder a él a través de componentes que usan ganchos de reacción.

mi rebanada:

 import { createSlice, createSelector, createAsyncThunk, } from "@reduxjs/toolkit"; const initialState = { cryptoList: [], loading: false, hasErrors: false, }; export const getCryptos = createAsyncThunk("cryptos/get", async (thunkAPI) => { try { const cryptosUrl = "https://api.coingecko.com/api/v3/coins/markets?vs_currency=usd"; let response = await fetch(cryptosUrl); console.log(response); return await response.json(); } catch (error) { console.log(error); } }); const cryptoSlice = createSlice({ name: "cryptos", initialState, reducers: {}, extraReducers: (builder) => { builder.addCase(getCryptos.pending, (state) => { state.loading = true; }); builder.addCase(getCryptos.fulfilled, (state, { payload }) => { state.loading = false; state.cryptoList = payload; }); builder.addCase(getCryptos.rejected, (state, action) => { state.loading = false; state.hasErrors = action.error.message; }); }, }); export const selectCryptos = createSelector( (state) => ({ cryptoList: state.cryptoList, loading: state.loading, }), (state) => state ); export default cryptoSlice;

Mi componente:

 import React, { useEffect } from "react"; import { getCryptos, selectCryptos } from "./cryptoSlice"; import { useSelector, useDispatch } from "react-redux"; const CryptoComponent = () => { const dispatch = useDispatch(); const { cryptoList, loading, hasErrors } = useSelector(selectCryptos); useEffect(() => { dispatch(getCryptos()); }, [dispatch]); const renderCrypto = () => { if (loading) return <p>Loading Crypto...</p>; if (hasErrors) return <p>Error loading news...</p>; if (cryptoList) { return cryptoList.data.map((crypto) => <p> {crypto.id}</p>); } }; return ( <div className="container"> <div className="row">CryptoComponent: {renderCrypto()}</div> </div> ); }; export default CryptoComponent;

Todos los valores construidos del estado: cryptoList, loading, hasErrors, parecen no estar definidos a nivel de componente.

¡Cualquier sugerencia es apreciada!

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

¿Has intentado usar el siguiente código createSelector:

 export const selectCryptos = createSelector( (state) => state, (state) => ({ cryptoList: state.cryptoList, loading: state.loading, }) );

Según el estado de la documentación, debe ser el primer parámetro: https://redux.js.org/usage/deriving-data-selectors

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda